;-
;-- DXGI
;-
;- IDXGIObject interface definition
;
Interface IDXGIObject Extends IUnknown
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
EndInterface

;- IDXGIDeviceSubObject interface definition
;
Interface IDXGIDeviceSubObject
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetDevice(a.i, b.i)
EndInterface

;- IDXGIResource interface definition
;
Interface IDXGIResource
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetDevice(a.i, b.i)
  GetSharedHandle(a.i)
  GetUsage(a.i)
  SetEvictionPriority(a.i)
  GetEvictionPriority(a.i)
EndInterface

;- IDXGIKeyedMutex interface definition
;
Interface IDXGIKeyedMutex
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetDevice(a.i, b.i)
  AcquireSync(a.i, b.i)
  ReleaseSync(a.i)
EndInterface

;- IDXGISurface interface definition
;
Interface IDXGISurface
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetDevice(a.i, b.i)
  GetDesc(a.i)
  Map(a.i, b.i)
  Unmap()
EndInterface

;- IDXGISurface1 interface definition
;
Interface IDXGISurface1
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetDevice(a.i, b.i)
  GetDesc(a.i)
  Map(a.i, b.i)
  Unmap()
  GetDC(a.i, b.i)
  ReleaseDC(a.i)
EndInterface

;- IDXGIAdapter interface definition
;
Interface IDXGIAdapter Extends IDXGIObject
  EnumOutputs(a.i, b.i)
  GetDesc(a.i)
  CheckInterfaceSupport(a.i, b.i)
EndInterface

;- IDXGIOutput interface definition
;
Interface IDXGIOutput
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetDesc(a.i)
  GetDisplayModeList(a.i, b.i, c.i, d.i)
  FindClosestMatchingMode(a.i, b.i, c.i)
  WaitForVBlank()
  TakeOwnership(a.i, b.i)
  ReleaseOwnership()
  GetGammaControlCapabilities(a.i)
  SetGammaControl(a.i)
  GetGammaControl(a.i)
  SetDisplaySurface(a.i)
  GetDisplaySurfaceData(a.i)
  GetFrameStatistics(a.i)
EndInterface

;- IDXGISwapChain interface definition
;
Interface IDXGISwapChain
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetDevice(a.i, b.i)
  Present(a.i, b.i)
  GetBuffer(a.i, b.i, c.i)
  SetFullscreenState(a.i, b.i)
  GetFullscreenState(a.i, b.i)
  GetDesc(a.i)
  ResizeBuffers(a.i, b.i, c.i, d.i, e.i)
  ResizeTarget(a.i)
  GetContainingOutput(a.i)
  GetFrameStatistics(a.i)
  GetLastPresentCount(a.i)
EndInterface

;- IDXGIFactory interface definition
;
Interface IDXGIFactory Extends  IDXGIObject
  EnumAdapters(Adapter.i, *ppAdapter)
  MakeWindowAssociation(WindowHandle, Flags.i)
  GetWindowAssociation(*pWindowHandle)
  CreateSwapChain(*pDevice, *pDesc, *ppSwapChain)
  CreateSoftwareAdapter(Modul.i, *ppAdapter)
EndInterface

;- IDXGIDevice interface definition
;
Interface IDXGIDevice
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetAdapter(a.i)
  CreateSurface(a.i, b.i, c.i, d.i, e.i)
  QueryResourceResidency(a.i, b.i, c.i)
  SetGPUThreadPriority(a.i)
  GetGPUThreadPriority(a.i)
EndInterface

;- IDXGIFactory1 interface definition
;
Interface IDXGIFactory1 Extends IDXGIFactory
  EnumAdapters1(Adapter.i, *ppAdapter.i)
  IsCurrent()
EndInterface

;- IDXGIAdapter1 interface definition
;
Interface IDXGIAdapter1 Extends IDXGIAdapter
  GetDesc1(a.i)
EndInterface

;- IDXGIDevice1 interface definition
;
Interface IDXGIDevice1
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetPrivateData(a.i, b.i, c.i)
  GetParent(a.i, b.i)
  GetAdapter(a.i)
  CreateSurface(a.i, b.i, c.i, d.i, e.i)
  QueryResourceResidency(a.i, b.i, c.i)
  SetGPUThreadPriority(a.i)
  GetGPUThreadPriority(a.i)
  SetMaximumFrameLatency(a.i)
  GetMaximumFrameLatency(a.i)
EndInterface

;-
;-- D3D11
;-
;- ID3D11DeviceChild interface definition
;
Interface ID3D11DeviceChild Extends IUnknown
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11DepthStencilState interface definition
;
Interface ID3D11DepthStencilState
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDesc(a.i)
EndInterface

;- ID3D11BlendState interface definition
;
Interface ID3D11BlendState
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDesc(a.i)
EndInterface

;- ID3D11RasterizerState interface definition
;
Interface ID3D11RasterizerState
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDesc(a.i)
EndInterface

;- ID3D11Resource interface definition
;
Interface ID3D11Resource
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetType(a.i)
  SetEvictionPriority(a.i)
  GetEvictionPriority()
EndInterface

;- ID3D11Buffer interface definition
;
Interface ID3D11Buffer
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetType(a.i)
  SetEvictionPriority(a.i)
  GetEvictionPriority()
  GetDesc(a.i)
EndInterface

;- ID3D11Texture1D interface definition
;
Interface ID3D11Texture1D
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetType(a.i)
  SetEvictionPriority(a.i)
  GetEvictionPriority()
  GetDesc(a.i)
EndInterface

;- ID3D11Texture2D interface definition
;
Interface ID3D11Texture2D
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetType(a.i)
  SetEvictionPriority(a.i)
  GetEvictionPriority()
  GetDesc(a.i)
EndInterface

;- ID3D11Texture3D interface definition
;
Interface ID3D11Texture3D
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetType(a.i)
  SetEvictionPriority(a.i)
  GetEvictionPriority()
  GetDesc(a.i)
EndInterface

;- ID3D11View interface definition
;
Interface ID3D11View
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetResource(a.i)
EndInterface

;- ID3D11ShaderResourceView interface definition
;
Interface ID3D11ShaderResourceView
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetResource(a.i)
  GetDesc(a.i)
EndInterface

;- ID3D11RenderTargetView interface definition
;
Interface ID3D11RenderTargetView
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetResource(a.i)
  GetDesc(a.i)
EndInterface

;- ID3D11DepthStencilView interface definition
;
Interface ID3D11DepthStencilView
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetResource(a.i)
  GetDesc(a.i)
EndInterface

;- ID3D11UnorderedAccessView interface definition
;
Interface ID3D11UnorderedAccessView
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetResource(a.i)
  GetDesc(a.i)
EndInterface

;- ID3D11VertexShader interface definition
;
Interface ID3D11VertexShader
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11HullShader interface definition
;
Interface ID3D11HullShader
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11DomainShader interface definition
;
Interface ID3D11DomainShader
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11GeometryShader interface definition
;
Interface ID3D11GeometryShader
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11PixelShader interface definition
;
Interface ID3D11PixelShader
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11ComputeShader interface definition
;
Interface ID3D11ComputeShader
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11InputLayout interface definition
;
Interface ID3D11InputLayout
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
EndInterface

;- ID3D11SamplerState interface definition
;
Interface ID3D11SamplerState
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDesc(a.i)
EndInterface

;- ID3D11Asynchronous interface definition
;
Interface ID3D11Asynchronous
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDataSize()
EndInterface

;- ID3D11Query interface definition
;
Interface ID3D11Query
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDataSize()
  GetDesc(a.i)
EndInterface

;- ID3D11Predicate interface definition
;
Interface ID3D11Predicate
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDataSize()
  GetDesc(a.i)
EndInterface

;- ID3D11Counter interface definition
;
Interface ID3D11Counter
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetDataSize()
  GetDesc(a.i)
EndInterface

;- ID3D11ClassInstance interface definition
;
Interface ID3D11ClassInstance
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetClassLinkage(a.i)
  GetDesc(a.i)
  GetInstanceName(a.i, b.i)
  GetTypeName(a.i, b.i)
EndInterface

;- ID3D11ClassLinkage interface definition
;
Interface ID3D11ClassLinkage
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetClassInstance(a.i, b.i, c.i)
  CreateClassInstance(a.i, b.i, c.i, d.i, e.i, f.i)
EndInterface

;- ID3D11CommandList interface definition
;
Interface ID3D11CommandList
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetContextFlags()
EndInterface

;- ID3D11DeviceContext interface definition
;
Interface ID3D11DeviceContext Extends ID3D11DeviceChild
  VSSetConstantBuffers(a.i, b.i, c.i)
  PSSetShaderResources(a.i, b.i, c.i)
  PSSetShader(a.i, b.i, c.i)
  PSSetSamplers(a.i, b.i, c.i)
  VSSetShader(a.i, b.i, c.i)
  DrawIndexed(a.i, b.i, c.i)
  Draw(a.i, b.i)
  Map(a.i, b.i, c.i, d.i, e.i)
  Unmap(a.i, b.i)
  PSSetConstantBuffers(a.i, b.i, c.i)
  IASetInputLayout(a.i)
  IASetVertexBuffers(a.i, b.i, c.i, d.i, e.i)
  IASetIndexBuffer(a.i, b.i, c.i)
  DrawIndexedInstanced(a.i, b.i, c.i, d.i, e.i)
  DrawInstanced(a.i, b.i, c.i, d.i)
  GSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  GSSetShader(a.i, b.i, c.i)
  IASetPrimitiveTopology(a.i)
  VSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
  VSSetSamplers(a.i, b.i, c.i, d.i, e.i)
  Begin(a.i)
  End(a.i)  
  GetData(a.i, b.i, c.i, d.i)
  SetPredication(a.i, b.i)
  GSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
  GSSetSamplers(a.i, b.i, c.i, d.i, e.i)
  OMSetRenderTargets(a.i, b.i, c.i)
  OMSetRenderTargetsAndUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i)
  OMSetBlendState(a.i, b.i, c.i)
  OMSetDepthStencilState(a.i, b.i)
  SOSetTargets(a.i, b.i, c.i, d.i)
  DrawAuto()
  DrawIndexedInstancedIndirect(a.i, b.i)
  DrawInstancedIndirect(a.i, b.i)
  Dispatch(a.i, b.i, c.i)
  DispatchIndirect(a.i, b.i)
  RSSetState(a.i)
  RSSetViewports(a.i, b.i)
  RSSetScissorRects(a.i, b.i, c.i)
  CopySubresourceRegion(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i)
  CopyResource(a.i, b.i)
  UpdateSubresource(a.i, b.i, c.i, d.i, e.i, f.i)
  CopyStructureCount(a.i, b.i, c.i)
  ClearRenderTargetView(a.i, b.i)
  ClearUnorderedAccessViewUint(a.i, b.i)
  ClearUnorderedAccessViewFloat(a.i, b.i)
  ClearDepthStencilView(a.i, b.i, c.f, d.i)
  GenerateMips(a.i)
  SetResourceMinLOD(a.i, b.i)
  GetResourceMinLOD(a.i)
  ResolveSubresource(a.i, b.i, c.i, d.i, e.i)
  ExecuteCommandList(a.i, b.i)
  HSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
  HSSetShader(a.i, b.i, c.i)
  HSSetSamplers(a.i, b.i, c.i, d.i, e.i)
  HSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  DSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
  DSSetShader(a.i, b.i, c.i)
  DSSetSamplers(a.i, b.i, c.i, d.i, e.i)
  DSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  CSSetShaderResources(a.i, b.i, c.i, d.i, e.i)
  CSSetUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i, f.i)
  CSSetShader(a.i, b.i, c.i)
  CSSetSamplers(a.i, b.i, c.i, d.i, e.i)
  CSSetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  VSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  PSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
  PSGetShader(a.i, b.i, c.i)
  PSGetSamplers(a.i, b.i, c.i, d.i, e.i)
  VSGetShader(a.i, b.i, c.i)
  PSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  IAGetInputLayout(a.i)
  IAGetVertexBuffers(a.i, b.i, c.i, d.i, e.i, f.i, g.i)
  IAGetIndexBuffer(a.i, b.i, c.i)
  GSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  GSGetShader(a.i, b.i, c.i)
  IAGetPrimitiveTopology(a.i)
  VSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
  VSGetSamplers(a.i, b.i, c.i, d.i, e.i)
  GetPredication(a.i, b.i)
  GSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
  GSGetSamplers(a.i, b.i, c.i, d.i, e.i)
  OMGetRenderTargets(a.i, b.i, c.i, d.i)
  OMGetRenderTargetsAndUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i)
  OMGetBlendState(a.i, b.i, c.i)
  OMGetDepthStencilState(a.i, b.i)
  SOGetTargets(a.i, b.i, c.i)
  RSGetState(a.i)
  RSGetViewports(a.i, b.i)
  RSGetScissorRects(a.i, b.i)
  HSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
  HSGetShader(a.i, b.i, c.i)
  HSGetSamplers(a.i, b.i, c.i, d.i, e.i)
  HSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  DSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
  DSGetShader(a.i, b.i, c.i)
  DSGetSamplers(a.i, b.i, c.i, d.i, e.i)
  DSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  CSGetShaderResources(a.i, b.i, c.i, d.i, e.i)
  CSGetUnorderedAccessViews(a.i, b.i, c.i, d.i, e.i)
  CSGetShader(a.i, b.i, c.i)
  CSGetSamplers(a.i, b.i, c.i, d.i, e.i)
  CSGetConstantBuffers(a.i, b.i, c.i, d.i, e.i)
  ClearState()
  Flush()
  GetType()
  GetContextFlags()
  FinishCommandList(a.i, b.i)
EndInterface

;- ID3D11Device interface definition
;
Interface ID3D11Device
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  CreateBuffer(a.i, b.i, c.i)
  CreateTexture1D(a.i, b.i, c.i)
  CreateTexture2D(a.i, b.i, c.i)
  CreateTexture3D(a.i, b.i, c.i)
  CreateShaderResourceView(a.i, b.i, c.i)
  CreateUnorderedAccessView(a.i, b.i, c.i)
  CreateRenderTargetView(a.i, b.i, c.i)
  CreateDepthStencilView(a.i, b.i, c.i)
  CreateInputLayout(a.i, b.i, c.i, d.i, e.i)
  CreateVertexShader(a.i, b.i, c.i, d.i)
  CreateGeometryShader(a.i, b.i, c.i, d.i)
  CreateGeometryShaderWithStreamOutput(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i, j.i, k.i)
  CreatePixelShader(a.i, b.i, c.i, d.i)
  CreateHullShader(a.i, b.i, c.i, d.i)
  CreateDomainShader(a.i, b.i, c.i, d.i)
  CreateComputeShader(a.i, b.i, c.i, d.i)
  CreateClassLinkage(a.i)
  CreateBlendState(a.i, b.i)
  CreateDepthStencilState(a.i, b.i)
  CreateRasterizerState(a.i, b.i)
  CreateSamplerState(a.i, b.i)
  CreateQuery(a.i, b.i)
  CreatePredicate(a.i, b.i)
  CreateCounter(a.i, b.i)
  CreateDeferredContext(a.i, b.i)
  OpenSharedResource(a.i, b.i, c.i)
  CheckFormatSupport(a.i, b.i)
  CheckMultisampleQualityLevels(a.i, b.i, c.i)
  CheckCounterInfo(a.i)
  CheckCounter(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i)
  CheckFeatureSupport(a.i, b.i, c.i)
  GetPrivateData(a.i, b.i, c.i)
  SetPrivateData(a.i, b.i, c.i)
  SetPrivateDataInterface(a.i, b.i)
  GetFeatureLevel()
  GetCreationFlags()
  GetDeviceRemovedReason()
  GetImmediateContext(a.i)
  SetExceptionMode(a.i)
  GetExceptionMode()
EndInterface

;-
;-- D3DX11core
;- 
;- ID3DX11ThreadPump interface definition
;
Interface ID3DX11ThreadPump
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  AddWorkItem(a.i, b.i, c.i, d.i)
  GetWorkItemCount()
  WaitForAllItems()
  ProcessDeviceWorkItems(a.i)
  PurgeAllItems()
  GetQueueStatus(a.i, b.i, c.i)
EndInterface

;-
;-- ID3DX10Mesh
;-
;- ID3DX10MeshBuffer interface definition
;
Interface ID3DX10MeshBuffer
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  Map(a.i, b.i)
  Unmap()
  GetSize()
EndInterface

;- ID3DX10Mesh interface definition
;
Interface ID3DX10Mesh
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetFaceCount()
  GetVertexCount()
  GetVertexBufferCount()
  GetFlags()
  GetVertexDescription(a.i, b.i)
  SetVertexData(a.i, b.i)
  GetVertexBuffer(a.i, b.i)
  SetIndexData(a.i, b.i)
  GetIndexBuffer(a.i)
  SetAttributeData(a.i)
  GetAttributeBuffer(a.i)
  SetAttributeTable(a.i, b.i)
  GetAttributeTable(a.i, b.i)
  GenerateAdjacencyAndPointReps(a.f)
  GenerateGSAdjacency()
  SetAdjacencyData(a.i)
  GetAdjacencyBuffer(a.i)
  SetPointRepData(a.i)
  GetPointRepBuffer(a.i)
  Discard(a.i)
  CloneMesh(a.i, b.s, c.i, d.i, e.i)
  Optimize(a.i, b.i, c.i)
  GenerateAttributeBufferFromTable()
  Intersect(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i)
  IntersectSubset(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i)
  CommitToDevice()
  DrawSubset(a.i)
  DrawSubsetInstanced(a.i, b.i, c.i)
  GetDeviceVertexBuffer(a.i, b.i)
  GetDeviceIndexBuffer(a.i)
EndInterface

;- ID3DX10SkinInfo interface definition
;
Interface ID3DX10SkinInfo
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetNumVertices()
  GetNumBones()
  GetMaxBoneInfluences()
  AddVertices(a.i)
  RemapVertices(a.i, b.i)
  AddBones(a.i)
  RemoveBone(a.i)
  RemapBones(a.i, b.i)
  AddBoneInfluences(a.i, b.i, c.i, d.i)
  ClearBoneInfluences(a.i)
  GetBoneInfluenceCount(a.i)
  GetBoneInfluences(a.i, b.i, c.i, d.i, e.i)
  FindBoneInfluenceIndex(a.i, b.i, c.i)
  SetBoneInfluence(a.i, b.i, c.f)
  GetBoneInfluence(a.i, b.i, c.i)
  Compact(a.i, b.i, c.f)
  DoSoftwareSkinning(a.i, b.i, c.i, d.i, e.i, f.i, g.i, h.i, i.i)
EndInterface

;-
;-- D3DX10math
;-
;- ID3DXMatrixStack interface definition
;
; Interface ID3DXMatrixStack
;   QueryInterface(a.i, b.i)
;   AddRef()
;   Release()
;   Pop()
;   Push()
;   LoadIdentity()
;   LoadMatrix(a.i)
;   MultMatrix(a.i)
;   MultMatrixLocal(a.i)
;   RotateAxis(a.i, b.f)
;   RotateAxisLocal(a.i, b.f)
;   RotateYawPitchRoll(a.f, b.f, c.f)
;   RotateYawPitchRollLocal(a.f, b.f, c.f)
;   Scale(a.f, b.f, c.f)
;   ScaleLocal(a.f, b.f, c.f)
;   Translate(a.f, b.f, c.f)
;   TranslateLocal(a.f, b.f, c.f)
;   GetTop()
; EndInterface

;-
;-- ID3DX10Core
;-
;- ID3DX10Sprite interface definition
;
Interface ID3DX10Sprite
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  Begin(a.i)
  DrawSpritesBuffered(a.i, b.i)
  Flush()
  DrawSpritesImmediate(a.i, b.i, c.i, d.i)
  End()
  GetViewTransform(a.i)
  SetViewTransform(a.i)
  GetProjectionTransform(a.i)
  SetProjectionTransform(a.i)
  GetDevice(a.i)
EndInterface

;- ID3DX10ThreadPump interface definition
;
Interface ID3DX10ThreadPump
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  AddWorkItem(a.i, b.i, c.i, d.i)
  GetWorkItemCount()
  WaitForAllItems()
  ProcessDeviceWorkItems(a.i)
  PurgeAllItems()
  GetQueueStatus(a.i, b.i, c.i)
EndInterface

;- ID3DX10Font interface definition
;
Interface ID3DX10Font
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDevice(a.i)
  GetDescA(a.i)
  GetDescW(a.i)
  GetTextMetricsA(a.i)
  GetTextMetricsW(a.i)
  GetDC()
  GetGlyphData(a.i, b.i, c.i, d.i)
  PreloadCharacters(a.i, b.i)
  PreloadGlyphs(a.i, b.i)
  PreloadTextA(a.s, b.i)
  PreloadTextW(a.i, b.i)
  DrawTextA(a.i, b.s, c.i, d.i, e.i, f.i)
  DrawTextW(a.i, b.i, c.i, d.i, e.i, f.i)
EndInterface


;- ID3D10Blob interface definition
;
Interface ID3D10Blob
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetBufferPointer()
  GetBufferSize()
EndInterface


;- ID3D11ShaderReflection interface definition
;
Interface ID3D11ShaderReflection
  QueryInterface(a.i, b.i)
  AddRef()
  Release()
  GetDesc(a.i)
  GetConstantBufferByIndex(a.l)
  GetConstantBufferByName(a.s)
  GetResourceBindingDesc(a.i, b.i)
  GetInputParameterDesc(a.i, b.i)
  GetOutputParameterDesc(a.i, b.i)
  GetPatchConstantParameterDesc(a.i, b.i)
  GetVariableByName(a.s)
  GetResourceBindingDescByName(a.s, b.i)
  GetMovInstructionCount()
  GetMovcInstructionCount()
  GetConversionInstructionCount()
  GetBitwiseInstructionCount()
  GetGSInputPrimitive()
  IsSampleFrequencyShader()
  GetNumInterfaceSlots()
  GetMinFeatureLevel(a.i)
  GetThreadGroupSize(a.i, b.i, c.i)
EndInterface



;- ID3D11ShaderReflectionConstantBuffer
Interface ID3D11ShaderReflectionConstantBuffer 
  QueryInterface(a.i, b.i)
  AddRef()
  Release()  
  GetDesc(a.i)
  GetVariableByIndex(a.i)
  GetVariableByName(a.s)
EndInterface








; IDE Options = PureBasic 5.20 beta 9 (Windows - x64)
; CursorPosition = 110
; FirstLine = 95
; EnableXP
; EnableCompileCount = 0
; EnableBuildCount = 0